package com.devplatform.pojo.vo;

import lombok.Data;

@Data
public class DataVo<T> {
    private Integer code;
    private String msg;
    private T data;

    /*\
     *   ok/success
     *   error/fastFail
     *   判断 条数返回 ok/error
     *   业务错误码+错误状态码
     *
     * */
    public static <T> DataVo<T> ok() {
        DataVo<T> dataVo = new DataVo<>();
        dataVo.setCode(200);
        dataVo.setMsg("success");
        return dataVo;
    }

    public static <T> DataVo<T> ok(T data) {
        DataVo<T> dataVo = new DataVo<>();
        dataVo.setCode(200);
        dataVo.setMsg("success");
        dataVo.setData(data);
        return dataVo;
    }

    /*错误方法*/
    public static <T> DataVo<T> error() {
        return error(500, "error", null);
    }

    public static <T> DataVo<T> error(String msg) {
        return error(500, msg, null);
    }

    public static <T> DataVo<T> error(Integer code, String msg) {
        return error(code, msg, null);
    }

    public static <T> DataVo<T> error(Integer code, String msg, T data) {
        DataVo<T> dataVo = new DataVo<>();
        dataVo.setCode(code);
        dataVo.setMsg(msg);
        dataVo.setData(data);
        return dataVo;
    }

}
